﻿#define _CRT_SECURE_NO_WARNINGS 1

////使用while循环在屏幕上打印1~10
//#include<stdio.h>
//
//int main()
//{
//	//1~10
//	int i = 0;//初始化部分
//	while (i <= 10)//判断部分
//	{
//		printf("%d ", i);
//		i++; //调整部分
//	}
//	return 0;
//}

//for循环语句

////使用for循环，在屏幕上打印1~10的值
//#include<stdio.h>
////for(表达式1; 表达式2; 表达式3)
////表达式1 ⽤于循环变量的初始化
////表达式2 ⽤于循环结束条件的判断
////表达式3 ⽤于循环变量的调整
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		printf("%d ", i);
//	}
//
//	return 0;
//}



////计算1~100之间3的倍数的数字之和
//#include<stdio.h>
//////方法一
////int main()
////{
////	int sum = 0;
////	int i = 0;
////	for (i = 1; i <= 100; i++)
////	{
////		if (i % 3 == 0)
////			sum += i;
////
////	}
////	printf("%d\n", sum);
////
////	return 0;
////}
////方法二
//int main()
//{
//	int sum = 0;
//	int i = 0;
//	for (i = 3; i <= 100; i += 3)
//	{
//			sum += i;
//	}
//	printf("%d\n", sum);
//
//	return 0;
//}


////使用do while在屏幕上打印1~10的值
//
//#include<stdio.h>
//
//int main()
//{
//	int num = 1;
//	do {
//		printf("%d ", num);
//		num++;
//	} while (num <= 10);
//
//	return 0;
//}



////输⼊⼀个正整数，计算这个整数是⼏位数？
////例如：
////输⼊：1234 输出：4
////输⼊：12 输出：2
//#include<stdio.h>
//
//int main()
//{
//	int count = 0;
//	int num = 0;
//	scanf("%d", &num);
//	do {
//		count++;
//		num /= 10;
//	} while (num);
//	printf("%d\n", count);
//
//	return 0;
//}


////while循环中的break和continue
//
//////break举例
////#include <stdio.h>
////int main()
////{
////	int i = 1;
////	while (i <= 10)
////	{
////		if (i == 5)
////			break;//当i等于5后，就执⾏break，循环就终⽌了
////		printf("%d ", i);//1 2 3 4 
////		i = i + 1;
////	}
////	return 0;
////}
//
////continue举例
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			continue;
//		//当i等于5后，就执⾏continue，直接跳过continue的代码，去循环的判断的地⽅
//		//因为这⾥跳过了i = i+1，所以i⼀直为5，程序陷⼊和死循环
//		printf("%d ", i);//1 2 3 4 死循环
//		i = i + 1;
//	}
//	return 0;
//}


////for循环中的break和continue
//
//////break 举例
////#include <stdio.h>
////int main()
////{
////	int i = 1;
////	for (i = 1; i <= 10; i++)
////	{
////		if (i == 5)
////			break;
////		printf("%d ", i);//1 2 3 4 
////	}
////	return 0;
////}
//
////continue举例
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			continue;//这⾥continue跳过了后边的打印，来到了i++的调整部分
//		printf("%d ", i);//1 2 3 4 6 7 8 9 10 
//	}
//	return 0;
//}


////do while循环中的break和continue
//
////break举例
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	do
//	{
//		if (i == 5)
//			break;
//		printf("%d ", i);//1 2 3 4 
//		i = i + 1;
//	} while (i <= 10);
//	return 0;
//}
//
//////continue举例
////#include <stdio.h>
////int main()
////{
////	int i = 1;
////	do
////	{
////		if (i == 5)
////			continue;
////		printf("%d ", i);//1 2 3 4 死循环
////		i = i + 1;
////	} while (i <= 10);
////	return 0;
////}



////找出100~200之间的素数，并打印在屏幕上。
////注：素数⼜称质数，只能被1和本⾝整除的数字。
//#include<stdio.h>
//
//////方法一
////int main()
////{
////	int i = 0;
////	for (i = 100; i <= 200; i++)
////	{
////		int flag = 1;//假设素数
////		int j = 0;
////		for (j = 2; j <= i - 1; j++) //遍历(2，i-1)
////		{
////			if (i % j == 0) //判断是否是素数
////			{
////				flag = 0; //不是素数
////				break;
////			}
////		}
////		if (flag == 1)
////		{
////			printf("%d ", i);
////		}
////	}
////
////	return 0;
////}
//
////优化之后
//#include<math.h>
//int main()
//{
//	int i = 0;
//	for (i = 101; i <= 200; i += 2) //缩小范围，素数肯定是奇数
//	{
//		int flag = 1;//假设素数
//		int j = 0;
//		for (j = 2; j <= sqrt(i); j++) //遍历(2，sqrt(i))
//		{
//			if (i % j == 0) //判断是否是素数
//			{
//				flag = 0; //不是素数
//				break;
//			}
//		}
//		if (flag == 1)
//		{
//			printf("%d ", i);
//		}
//	}
//
//	return 0;
//}


////goto语句 ———— goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。
//
////#include<stdio.h>
////
////int main()
////{
////	/*int a = 1;
////next:
////	printf("hehe\n");
////	if (1 == a)
////		goto next;*/
////
////	printf("hehe\n");
////	goto next;
////	printf("haha\n");
////next:
////	printf("xixi\n");
////
////	return 0;
////}
//
//
////system 是一个库函数，可以执行系统命令
//
//写一个程序：电脑在1分钟内关机，如果输入:我是猪!，就取消关机
//#include<stdio.h>
//#include<string.h>
//int main()
//{
//	char input[20] = {0};
//	system("shutdown -s -t 60");
//again:
//	printf("电脑将在1分钟之后关机！输入“我是猪！”,取消关机:");
//	scanf("%s", input);
//	if (strcmp(input, "我是猪！") == 0)
//	{
//		system("shutdown -a");
//	}
//	else
//	{
//		goto again;
//	}
//
//	return 0;
//}


////rand函数的使⽤需要包含⼀个头⽂件是：stdlib.h
////rand函数会返回⼀个伪随机数
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
//	printf("%d\n", rand());
//	printf("%d\n", rand());
//	printf("%d\n", rand());
//	printf("%d\n", rand());
//	printf("%d\n", rand());
//	printf("%d\n", rand());
//	printf("%d\n", rand());
//
//	return 0;
//}

////srand函数，⽤来初始化随机数的⽣成器的
// time函数的时候需要包含头⽂件：time.h
//#include<stdio.h>
//#include<time.h>
//#include<stdlib.h>
//
////int main()
////{
////	srand((unsigned int)time(NULL));
////	printf("%d\n", rand() % 100 + 1);
////	printf("%d\n", rand() % 100 + 1);
////	printf("%d\n", rand() % 100 + 1);
////	printf("%d\n", rand() % 100 + 1);
////	printf("%d\n", rand() % 100 + 1);
////	printf("%d\n", rand() % 100 + 1);
////	printf("%d\n", rand() % 100 + 1);
////
////	return 0;
////}
//
//
//
////⽣成100~200的随机数
//int main()
//{
//	srand((unsigned int)time(NULL));
//	printf("%d\n", 100 + rand() % (100 + 1));
//	printf("%d\n", 100 + rand() % (100 + 1));
//	printf("%d\n", 100 + rand() % (100 + 1));
//	printf("%d\n", 100 + rand() % (100 + 1));
//	printf("%d\n", 100 + rand() % (100 + 1));
//	printf("%d\n", 100 + rand() % (100 + 1));
//	printf("%d\n", 100 + rand() % (100 + 1));
//	printf("%d\n", 100 + rand() % (100 + 1));
//	printf("%d\n", 100 + rand() % (100 + 1));
//
//	return 0;
//}
////所以如果要⽣成a~b的随机数，⽅法如下：
////       a + rand() % (b - a + 1)



//猜数字游戏实现
#include<stdio.h>
#include<time.h>
#include<stdlib.h>

void game()
{
	int num = rand() % 100;
	int guess = 0;
	while (1)
	{
		printf("输入猜的数字:");
		scanf("%d", &guess);
		if (guess < num)
			printf("猜小了!\n");
		else if (guess > num)
			printf("猜大了!\n");
		else
		{
			printf("恭喜你!猜中了\n");
			break;
		}
	}
}

void menu()
{
	printf("**************************\n");
	printf("***猜数字游戏,0~99的数字**\n");
	printf("****** 1.play   **********\n");
	printf("****** 0.exit   **********\n");
	printf("**************************\n");
}

int main()
{
	srand((unsigned int)time(NULL));
	int input = 0;
	do {
		menu();
		printf("请选择:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏！\n");
			break;
		default:
			printf("输入错误，重新输入\n!");
			break;
		}

	} while (input);

	return 0;
}

